package active;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * @author 陈华旺
 * @version 1.0
 * @date 2023年11月20日 16:58
 * @Description
 *  web2.5 定义class类 继承 HttpServlet，重写service方法并通过 ServletResponse 参数返回页面
 *         在项目 web/WEB-INFO/web.xml 文件中完成当前类的指定，并映射地址
 */
public class Test01Servlet extends HttpServlet {
//    将自定义类继承于 HttpServlet , 当tomact容器对该web应用进行加载时，会由tomact定义main方法启动该类
//    通过重写 service 方法，将该web项目在tomcat运行时，通过浏览器访问的地址，引导到当前java程序
//    但该类对应的方法如果需要实现上述功能，必须为tomcat容器进行该类的访问描述
//          => 通过为项目定义虚拟地址的方式，指向该类的方法调用
//    web2.5 : 基于xml配置文件构建配置 WEB-INFO/web.xml => 相关配置参考该文件
//    web3.0
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        res.setContentType("text/html;charset=utf-8");
//        如果方法功能不完整，页面访问时tomcat会默认描述为 405 方法不允许访问
        PrintWriter writer = res.getWriter(); // 获取向浏览器传递结果的输出对象
//        writer.println("Test01Servlet-service-被调用"); // 通过println方法向浏览器打印结果
//        查询数据库，循环数据……
        StringBuffer str = new StringBuffer();
        str.append("<html>")
                .append("<head>")
                .append("<meta charset=\"UTF-8\">")
                .append("</head>")
                .append("<body>")
                .append("<h1 style='color:red;'>Test01Servlet-service-被调用</h1>")
                .append("</body>")
                .append("</html>");
        writer.println(str);
    }
}
